package com.jp.algorithm.pandc;

import java.util.ArrayList;
import java.util.List;

public class Combination {

    public static void printK(int[] a, int cur, int k, List<Integer> tmp){
        tmp.add(a[cur]);
        if(tmp.size()==k){
            print(tmp);
            tmp.remove(tmp.size()-1);
            return;
        }

        for(int i=cur+1;i<a.length;i++){
            printK(a,i,k,tmp);
        }
        tmp.remove(tmp.size()-1);
    }
    public static void printCombination(int[] a , int k){
        List<Integer> tmp = new ArrayList<>();
        for(int i=0;i<a.length;i++){
            printK(a,i,k,tmp);
        }
    }

    public static void print( List<Integer> a){
        for(int i:a){
            System.out.print("["+i+"]");
        }
        System.out.println();
    }

    public static void test(){
        int[]  a = {1,2,3,4,5};
        int k = 3;
        printCombination(a,k);
    }

    public static void main(String[] args) {
        test();
    }
}
